;;;; package.lisp

(defpackage #:robot
  (:use #:cl)
  (:export #:up
           #:down
           #:left
           #:right
           #:paint
           #:wall-up-p
           #:wall-down-p
           #:wall-left-p
           #:wall-right-p
           #:clear-up-p
           #:clear-down-p
           #:clear-left-p
           #:clear-right-p
           #:paintedp
           #:blankp
           #:start
           #:fresh-world
           #:defworld))

(defpackage #:robot-impl
  (:use #:cl #:robot)
  (:export #:show-robot-app
           #:landscape
           #:landscape-width
           #:landscape-height
           #:landscape-hwalls
           #:landscape-vwalls
           #:dotted-cells
           #:painted-cells
           #:robot
           #:robot-active-p
           #:robot-position
           #:robot-app-wish
           #:robot-app-world
           #:robot-app-component
           #:robot-app-callback
           #:robot-app-wish
           #:robot-app-show
           #:robot-app-update-map
           #:set-robot-led-mode
           #:set-robot-data
           #:*robot-app-running-p*)
  (:import-from #:ltk #:*wish*))

(defpackage #:robot-ltk
  (:use #:cl #:ltk #:robot-impl)
  (:import-from #:bordeaux-threads
                #:make-thread)
  (:import-from #:safe-queue
                #:make-mailbox
                #:mailbox-send-message
                #:mailbox-receive-message))
